[アップデート] EBS マルチアタッチが io2 ボリュームでもサポートされました!

[アップデート] EBS マルチアタッチが io2 ボリュームでもサポートされました!

EBS マルチアタッチが io2 でサポートされました。東京にはいつ来るんでしょうね。そしてどういう時に使うんでしょうね。
Clock Icon2020.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンバンハ、千葉(幸)です。

EBS のマルチアタッチに対応したボリュームタイプに io2 が追加されました!

io2 の発表から数ヶ月……これは早いのでしょうか遅いのでしょうか。

EBS のマルチアタッチとは

2020年2月に発表された機能で、 EBS ボリュームを複数のインスタンスにアタッチできるものです。

EBSMultiAttach

いくつか制約があり、代表的なものは以下です。

  • AZ を跨げない
  • アタッチするインスタンスは Nitro インスタンスである必要がある
  • プロビジョンド IOPS ボリュームのみサポート
    • 今回のアップデートで io1 だけでなく io2 も対象に
  • 使用できるリージョンが限定的
    • 東京リージョンはまだ
  • ブートボリュームには使用不可
  • インスタンスローンチ時にあわせてアタッチは不可
  • アプリケーション側でデータの整合性を担保する必要がある

単純に「 2 台のインスタンスで共有できるファイルサーバー」といった用途では使用できません。

詳細は以下のドキュメントから確認してください。

EBS マルチアタッチの使い所

こちらは当時しばたが検討していました。ここではクラスター製品での使用を想定しています。

具体的なユースケースとしては、 CLUSTERPRO X による共有ディスク型クラスターに使用できるようです。

あわせて以下もご参照ください。

プロビジョンド IOPS io2 とは

2020年8月に発表された新たなボリュームタイプです。

同じくプロビジョンド IOPS という括りに属する io1 と比較して、耐久性と 1GiBあたりの最大 IOPS が改善しています。お値段は据え置きです。

(表は上記エントリより引用)

項目 io1 io2
耐久性 99.9% 99.999%
1GiBあたりの最大IOPS 50 500
IOPS範囲(最小~最大) 100~64000 100~64000
月額料金($):1GBあたり 0.142 0.142
月額料金($):1IOPSあたり 0.074 0.074

io2 の発表後、あえて io1 を選択する理由としてマルチアタッチのサポート有無がありましたが、今回のアップデートによりそれも無くなりました。(とは言え対応リージョンに差異があります。後述。)

ちなみに、先日発表された io2 Block Express(プレビュー) と io2 は別物ですので、混同しないようにしましょう。

マルチアタッチにおける io1 と io2 の違い

いくつか違いがあるので確認しておきます。

対応リージョン

「●」が付与されている箇所が、対応していることを表します。 io2 と io1 で被らないようになっているのは何か意図があるのでしょうか。

io2 ボリューム io1 ボリューム
us-east-1 -
us-east-2 -
us-west-2 -
eu-west-1 -
eu-central-1 -
ap-south-1 -
ap-northeast-2 -

ボリューム変更操作サポート

マルチアタッチが有効になっているボリュームの変更操作に対するサポート状況は以下です。

io2 ボリューム io1 ボリューム
ボリュームタイプの変更 できる(マルチアタッチ無効後) できない
ボリュームサイズの変更 できる できない
プロビジョンド IOPS の変更 できる できない
マルチアタッチの有効化 できる できない
マルチアタッチの無効化 できる(デタッチ後) できない

io2 ボリュームの方が柔軟に変更ができますね。

やってみた

マルチアタッチをap-south-1(ムンバイ)で試してみます。今回はアタッチできるところまでをゴールとします。

EBS ボリュームの作成

EBS ボリュームの作成時に、 io2 と マルチアタッチ有効化を選択します。

EBSMultiattach-8808716

注意書きには以下の内容が表示されます。(機械翻訳)

マルチアタッチ対応ボリュームは、I/O フェンシングをサポートしていません。I/O フェンシング プロトコルは、共有ストレージ環境での書き込みアクセスを制御してデータの一貫性を維持します。マルチアタッチ対応ボリュームでデータの一貫性を維持するには、アプリケーションでインスタンス間の書き込み順序を指定する必要があります。

Name タグをつけて作成します。

EBSMultiattach2

EBS ボリュームのアタッチ

すでに以下条件で EC2 インスタンスが 2 台準備されています。

  • 使用 AMI
    • amzn2-ami-hvm-2.0.20201218.1-x86_64-gp2
  • インスタンスタイプ
    • t3.micro
  • アベイラビリティゾーン
    • EBS ボリュームと同一

EBS ボリュームの画面より、ボリュームのアタッチを選択します。

EBSmultiattach-8809592

作成済みのインスタンスの片方を指定しアタッチを行います。

EBSMultiAttach22

2台目も同様にアタッチを行います。すでに1台アタッチ済みであることがここで判別できます。

EBSMultiattach-8809734

問題なくアタッチできました!

EBSmultiattach-8809825

ちなみに EC2 インスタンスからはこのように見えます。ここで見える情報だけでは、当該ボリュームがマルチアタッチ有効なものかどうかは判断できないですね。

EBSmultiattach-8809894

ちなみに

同じく ap-south-1(ムンバイ)リージョンで io1 ボリュームの作成を試みました。ムンバイでは io1 のマルチアタッチがサポートされていないので、有効化を選択する箇所がありません。

EBSmultiattach-8810051

対応リージョンにはお気をつけください。

終わりに

io2 ボリュームがマルチアタッチに対応したというアップデートでした。

io1 と対応リージョンが重ならないようになっている、というのが面白いですね。引き続き東京リージョンでは使えませんが、首を長くして待ちましょう。

(そしてマルチアタッチでどういう時に使うの?というのが揉まれていくのを待ちましょう。)

以上、千葉(幸)がお送りしました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.